const { app, BrowserWindow, ipcMain } = require('electron')
const path = require('node:path')

const createWindow = () => {
  const win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      preload: path.join(__dirname, 'preload.js') // 预加载注入版本信息
    }
  })

  win.loadFile('index.html')
  // win.loadURL('https://www.baidu.com')
  win.webContents.openDevTools() // 打开控制台
}

/**
 * 在 app 模块的 ready 事件被激发后，创建窗口
 */
app.whenReady().then(() => {
  ipcMain.handle('ping', () => 'pong')
  createWindow()

  /**
   * 针对 MacOS 后台激活时，创建窗口 
   * 保证行为一致： 没有窗口时，后台关闭
   */
  app.on('activate', () => {
    if (BrowserWindow.getAllWindows().length === 0) createWindow()
  })
})

/**
 * macOS（darwin） 上实现 关闭所有窗口后，退出程序
 */
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') app.quit()
})